package com.eian.boot.common.enums;

import com.eian.boot.common.core.enums.IBaseEnum;
import lombok.Getter;

/**
 * 权限类型枚举
 * 标准值定义：1-目录（模块），2-菜单，3-按钮（API）
 *
 * @author alex.meng
 * @createTime 2025-10-14
 */
@Getter
public enum PermissionTypeEnum implements IBaseEnum<Integer> {

    /**
     * 目录（模块）
     */
    CATALOG(1, "目录", "用于组织菜单的目录结构"),

    /**
     * 菜单
     */
    MENU(2, "菜单", "可访问的页面菜单"),

    /**
     * 按钮（API）
     */
    BUTTON(3, "按钮", "页面按钮或API权限");

    private final Integer value;
    private final String label;
    private final String description;

    PermissionTypeEnum(Integer value, String label, String description) {
        this.value = value;
        this.label = label;
        this.description = description;
    }

    /**
     * 根据值获取枚举
     */
    public static PermissionTypeEnum getByValue(Integer value) {
        return IBaseEnum.getByValue(PermissionTypeEnum.class, value);
    }

    /**
     * 根据标签获取枚举
     */
    public static PermissionTypeEnum getByLabel(String label) {
        return IBaseEnum.getByLabel(PermissionTypeEnum.class, label);
    }
}

